custom source code transformation tool (OpenSim Ltd)
Structured Review

Custom Source Code Transformation Tool, supplied by OpenSim Ltd, used in various techniques. Bioz Stars score: 90/100, based on 1 PubMed citations. ZERO BIAS - scores, article reviews, protocol conditions and more
https://www.bioz.com/result/custom source code transformation tool/product/OpenSim Ltd
Average 90 stars, based on 1 article reviews
Images
1) Product Images from "Algorithmic differentiation improves the computational efficiency of OpenSim-based trajectory optimization of human movement"
Article Title: Algorithmic differentiation improves the computational efficiency of OpenSim-based trajectory optimization of human movement
Journal: PLoS ONE
doi: 10.1371/journal.pone.0217730
Figure Legend Snippet: We developed two approaches (AD-ADOLC and AD-Recorder) to make an OpenSim function F and its forward ( F fwd ) and reverse ( F rev ) directional derivatives available within the CasADi environment for use by the NLP solver during the optimization. In the AD-ADOLC approach (top), ADOL-C’s algorithms are used in a C++ code to provide F fwd and F rev . In the AD-Recorder approach (bottom), Recorder provides the expression graph of F as MATLAB source code from which CasADi’s C-code generator generates C-code containing F , F fwd , and F rev . The AD-Recorder approach combines operator overloading, when generating the expression graph, and source code transformation, when processing the expression graph to generate C-code for F , F fwd , and F rev . In both approaches, the code comprising F , F fwd , and F rev is compiled as a Dynamic-link Library (DLL), which is imported as an external function within the CasADi environment. In our application, F represents the multi-body dynamics and is called when formulating the optimal control problem. The latter is then composed into a differentiable optimal control transcription using CasADi. During the optimization, CasADi provides the NLP solver with evaluations of the NLP objective function ( nlp f ), constraints ( nlp g ), objective function gradient ( nlp grad f ), constraint Jacobian ( nlp jac g ), and Hessian of the Lagrangian ( nlp hess l ). CasADi efficiently queries F fwd and F rev to construct the full derivative matrices.
Techniques Used: Expressing, Transformation Assay, Control, Construct